package com.ruoyi.wwc.api.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 订单信息对象 orders
 * 
 * @author wwc
 * @date 2025-05-09
 */
public class Orders extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单编号 */
    private Long id;

    /** 核销码（UUID生成，唯一） */
    @Excel(name = "核销码", readConverterExp = "U=UID生成，唯一")
    private String verificationCode;

    /** 核销码图片 */
    @Excel(name = "核销码图片")
    private String verificationImg;

    /** 服务编号id */
    @Excel(name = "服务编号id")
    private Long serviceId;

    /** 店铺id */
    @Excel(name = "店铺id")
    private Long mid;

    /** 服务类别id */
    @Excel(name = "服务类别id")
    private Long serviceTypeId;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date orderTime;

    /** 预约时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date reservationTime;

    /** 订单车辆id号 */
    @Excel(name = "订单车辆id号")
    private Long carId;

    /** 优惠券id（每次只用一张） */
    @Excel(name = "优惠券id", readConverterExp = "每=次只用一张")
    private Long couponId;

    /** 实付价格 */
    @Excel(name = "实付价格")
    private Long price;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 订单状态（0待支付、1待使用、2待评价、3已取消、4已退款、5已完成） */
    @Excel(name = "订单状态", readConverterExp = "0=待支付、1待使用、2待评价、3已取消、4已退款、5已完成")
    private Long status;

    /** 删除状态 */
    private Long deleted;

    /** 是否评价（0未评价、1已评价） */
    @Excel(name = "是否评价", readConverterExp = "0=未评价、1已评价")
    private Long evaluate;

    /** 保留字段1 */
    private String reserved1;

    /** 保留字段2 */
    private String reserved2;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setVerificationCode(String verificationCode) 
    {
        this.verificationCode = verificationCode;
    }

    public String getVerificationCode() 
    {
        return verificationCode;
    }

    public void setVerificationImg(String verificationImg) 
    {
        this.verificationImg = verificationImg;
    }

    public String getVerificationImg() 
    {
        return verificationImg;
    }

    public void setServiceId(Long serviceId) 
    {
        this.serviceId = serviceId;
    }

    public Long getServiceId() 
    {
        return serviceId;
    }

    public void setMid(Long mid) 
    {
        this.mid = mid;
    }

    public Long getMid() 
    {
        return mid;
    }

    public void setServiceTypeId(Long serviceTypeId) 
    {
        this.serviceTypeId = serviceTypeId;
    }

    public Long getServiceTypeId() 
    {
        return serviceTypeId;
    }

    public void setOrderTime(Date orderTime) 
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime() 
    {
        return orderTime;
    }

    public void setReservationTime(Date reservationTime) 
    {
        this.reservationTime = reservationTime;
    }

    public Date getReservationTime() 
    {
        return reservationTime;
    }

    public void setCarId(Long carId) 
    {
        this.carId = carId;
    }

    public Long getCarId() 
    {
        return carId;
    }

    public void setCouponId(Long couponId) 
    {
        this.couponId = couponId;
    }

    public Long getCouponId() 
    {
        return couponId;
    }

    public void setPrice(Long price) 
    {
        this.price = price;
    }

    public Long getPrice() 
    {
        return price;
    }

    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setDeleted(Long deleted) 
    {
        this.deleted = deleted;
    }

    public Long getDeleted() 
    {
        return deleted;
    }

    public void setEvaluate(Long evaluate) 
    {
        this.evaluate = evaluate;
    }

    public Long getEvaluate() 
    {
        return evaluate;
    }

    public void setReserved1(String reserved1) 
    {
        this.reserved1 = reserved1;
    }

    public String getReserved1() 
    {
        return reserved1;
    }

    public void setReserved2(String reserved2) 
    {
        this.reserved2 = reserved2;
    }

    public String getReserved2() 
    {
        return reserved2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("verificationCode", getVerificationCode())
            .append("verificationImg", getVerificationImg())
            .append("serviceId", getServiceId())
            .append("mid", getMid())
            .append("serviceTypeId", getServiceTypeId())
            .append("orderTime", getOrderTime())
            .append("reservationTime", getReservationTime())
            .append("carId", getCarId())
            .append("couponId", getCouponId())
            .append("price", getPrice())
            .append("payTime", getPayTime())
            .append("status", getStatus())
            .append("deleted", getDeleted())
            .append("evaluate", getEvaluate())
            .append("reserved1", getReserved1())
            .append("reserved2", getReserved2())
            .toString();
    }
}
